package com.gioneco.enumerate;

import com.gioneco.util.ConstantsUtil;
import com.gioneco.util.Field;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.util.StringUtils;

/**
 * 系统操作日志类型
 */
@AllArgsConstructor
@Getter
public enum OperateTypeEnum {

    ADD("1","新增"),
    LOGIN("2","登录"),
    OTHER("3","其他"),
    EDIT("4","编辑"),
    QUERY("5","查询")
    ;

    @Field
    private String code;
    @Field
    private String desc;


    /**
     * 根据路径查询是否是那种类型
     * 方法名带有 get list query QUERY
     * 方法名带有 add ADD
     * 方法名带有 update delete EDIT
     * 方法名带有 login LOGIN
     */
    public static String getOperateTypeByPath(String path){
        if(StringUtils.hasText(path)){
            if(path.contains(ConstantsUtil.ADD_PATH)){
                return ADD.code;
            }
            if(path.contains(ConstantsUtil.UPDATE_PATH)){
                return EDIT.code;
            }
            if(path.contains(ConstantsUtil.DELETE_PATH)){
                return EDIT.code;
            }
            if(path.contains(ConstantsUtil.GET)){
                return QUERY.code;
            }
            if(path.contains(ConstantsUtil.LIST)){
                return QUERY.code;
            }
            if(path.contains(ConstantsUtil.QUERY)){
                return QUERY.code;
            }
            if(path.contains(ConstantsUtil.LOGIN)){
                return LOGIN.code;
            }
            return OTHER.code;
        }
        return "";
    }
}
